



GO:MTCTM




Golden Oldies:
Maintenance Package
OPERATOR MANUAL


Copyright  1988 MISOSYS, Inc., All rights reserved






 




GO:MTCTM



Golden Oldies:
Maintenance Package
OPERATOR MANUAL

Revision 1.0.0 11/28/88

Copyright  1988 MISOSYS, Inc., All rights reserved




No part of this publication may be reproduced, stored in a retrieval system, or 
transmitted, in any form or by any means, electronic, mechanical, photocopying, 
recording or otherwise, without the prior written permission of MISOSYS, Inc.



MISOSYS, Inc
PO Box 239
Sterling, VA 22170-0239
703450-4181


SOFTWARE LICENSE AGREEMENT

MISOSYS, Inc., authorizes you to use this software on only one computer at a 
time. You are authorized to make archived copies of the software for the sole 
purpose of backing up your software.

MISOSYS, Inc., warrants the physical diskette and physical documentation to be 
free of defects in materials and workmanship for a period of 30 days from the 
date of purchase. Upon notification of defects in material or workmanship within 
the warranty period, MISOSYS, Inc., will replace the defective documentation or 
diskette.

MISOSYS, Inc disclaims all other warranties, expressed or 
implied, including but not limited to any implied warranty 
of merchantability and/or fitness for particular purpose. 
Under no circumstances shall MISOSYS, Inc be liable for 
any loss of profit or any other damage, including but not 
limited to special, incidental, exemplary, consequential or 
other damages.


LDOS is a trademark of MISOSYS, Inc
LS-DOS is a trademark of MISOSYS, Inc.
TRSDOS is a trademark of the Tandy Corporation.



Table of Contents

General Description	iv

DCT	1

DIRCHECK	11

FIXGAT	15

IOMON	19

MAPPER	23

RAMTEST	25

UNREMOVE	29

Glossary of Terms	31


General Description

DCT:	This program displays the Drive Code Table (DCT) for any 
one of the eight logical drive numbers to the screen and allows 
it to be modified.

DIRCHECK:	This program checks a diskette directory for flaws and 
attempts to fix detected errors.

FIXGAT:	If during any disk access, an error is received such as "Illegal 
Drive Number" and there is a diskette in the drive, the problem 
could be caused by the Granule Allocation Table (GAT) sector 
of the directory containing incorrect information. Other GAT 
related problems could include improper disk name or master 
password, of an incorrect date. The FIXGAT utility might help 
in any of these circumstances.

IOMON:	This is a disk drive "filter" which, when installed, will monitor 
disk input/output for errors and allow you to take corrective 
action when such occur.

MAPPER:	The operating system's directory command (DIR) will let you 
know what files you have on a disk, but MAPPER will show 
you where the files are positioned on that disk.

RAMTEST:	This program tests the standard 64K of memory from X'0000' 
to X'FFFF and any extra memory banks available to the DOS.

UNREMOVE:	This is used to re-instate a file which was previously deleted by 
using the REMOVE or PURGE command.


DCT

This program displays the Drive Code Table (DCT) for any one of the eight 
logical drive numbers to the screen and allows it to be modified. The syntax is:

DCT [drivespec]

no parameters are allowed

drivespec is optional

abbr:	" :" in drivespec is optional

The Drive Code Table (DCT) is the way in which LS-DOS interfaces the 
operating system with specific disk driver routines. Typing DCT at the DOS 
Ready prompt will enter the utility. The screen will clear and the following will 
appear:

	DCT - Version 2.0.0 - Drive Code Table Creator
	Copyright 1982/88 MISOSYS, Inc., All rights reserved

	Logical Drive Number <0-7> ?

If the drivespec had been specified the display would skip to the next display. 
Enter the drive number desired and the current DCT will appear. For example, if 
a 0 were entered the following might be displayed:





Logical Drive 0

       X'0470'= C3 F4 OF 0C BO 05 98 1F 2F 4C
X'C3'= 1100 0011      Enabled
X'F4'= 1111 0100      LSB of Disk Driver
X'OF'= 0000 1111      MSB of Disk Driver
X'0C'= 0-0-0-0-1-1-00 SD, 5", Hard, Fixed
X'B0'= 1-0-1-1-0000   SDC, Dcyl=Y, Alien DC, Start Head 1
X'05'= 0000 0101      Drive Select Code = 5
X'98'= 1001 1000      Cylinder Count = 306
X'1F'= 000-11111      Heads = 1, Sectors/Track = 32
X'2F'= 001-01111      Gran/Cylinder = 2, Sectors/Gran = 16
X'4C'= 0100 1100      Directory Cylinder = 76

Do you wish to modify (Y/N) ?


Each logical drive will be entered into the DCT in a 10 byte sequence. The first 
line of the display indicates which logical drive is being displayed. The second 
line displays the address of the entry and the subsequent 10 bytes located there 
which comprise the information. In the example, drive 0 is shown at X'0470' 
followed by C3 F4 OF 0C BO 05 98 1F 2F 4C

Each of the 10 bytes is then displayed in its own row. The first column is the byte 
to be shown. The second column breaks the byte into the appropriate bit pattern 
which is actually read by the system. The final column translates the bit pattern 
into an English mnemonic rendition of the information contained in the pattern. 
Each byte contains the information necessary to interface hardware of a 
non-standard type into the LS-DOS system. The explanation of each byte is as 
follows:

Byte 00

The first byte of a three byte vector to the disk I/O driver routines. In the 
example, this is an X'C3', which is a jump (JP) to the address following. All 
enabled drives will have a jump (X'C3') at this byte. If the drive is disabled this 
byte will contain an X'C9' (RET) instruction.

Byte 01 and Byte 02

These bytes will contain the jump address of the disk I/O routine which is 
handling this logical drive. Byte 02 is the MSB of the address and Byte 01



is the LSB of the address. In the example, the drive routine is located at X'0FF4'.

Byte 03

This byte contains a series of seven flags as follows: 

bit 7

This is set to "1" if write-protected by software (SYSTEM WP 
command) or is a "0" if not software write-protected. The example, is 
software write enabled.

bit 6

This is set to "1" if double density (DDEN) or set to "0" for single 
density (SDEN). The example indicates single density. The third column 
has an SD in it; it would be a DD if the bit were set.

bit 5

Will be set to "I" if this is an 8" drive and set to "0" if it is a 5.25" drive. 
The last column will translate the bit as 8" or 5"

bit 4

A "1" will indicate that the disk's second side has been selected. A "0" 
will indicate selection of the first side. The bit value will match the side 
indicator bit in the sector header written by the Floppy Disk Controller 
(FDC). The example indicates the first side has been selected. The last 
column does not translate this.

When set to "1" this bit indicates a hard drive (Winchester) is in place. A 
"0" would indicate that the drive is either a 5.25 or 8 inch floppy. The 
third column would indicate "HARD" or "FLOPPY" as the translation.





bit 2

This bit depends on whether the drive is a hard drive or a floppy drive. 
If it is a floppy drive, this bit will indicate the time delay between 
selection of a 5.25" drive and the first poll of the status register. The bit 
is set to "1" to indicate 0.5 seconds of delay while a "0" represents a 1 
second delay (can be set by the SYSTEM command). The purpose of 
the delay is to get the 5.25" drive up to speed if the motor has been shut 
down. Since the 8" drive motors are always on, this bit is not used on 8" 
floppy drives. If the drive is a hard drive this bit indicates whether the 
disk is a fixed or removable type. A "0" set indicates that the drive is 
removable and the bit set to "1" indicates a fixed type. The last column 
will translate as either ".5 sec" or "Fixed" if "1"; or either "1 sec" of 
"Removable" if "0".

bits  1 and 0

These bits will contain the floppy disk step rate specifications for the 
FDC (SYSTEM command). The stepping rate depends on the size of 
the drive according to the following chart

	bits at	5 inch	8 inch
	00	6 ms	3 ms
	01	12 ms	6 ms
	10	20 ms	10 ms
	11	 40 ms	20 ms

The appropriate value will display in the last column of the screen.

Byte 04

This byte contains five more flags which are additional drive specifications.

bit 7

If set, then no @CKDRV system call will be performed for this drive. 



bit 6

If this bit is set to "1", the controller is a double density controller 
(DDC). If it set to "0" the controller is a single density controller (SDC). 
Either DDC or SDC will be translated in the last column.

bit 5

The information carried by this bit is dependent on whether the drive is 
hard or floppy. If floppy, the "1" indicates that the drive is two-sided 
and a "0" means single-sided. This should not be confused with bit 4, of 
byte 03. That bit informs the controller what side current I/O is to be 
on. This bit shows that the disk is two-sided. If the drive is hard, a "1" 
indicates that the amount of cylinders on the disk is double the amount 
indicated in byte 06. If "0" then no doubling is to occur. The third 
column will translate a "1" to be either "Sides=2" or "Dcyl=Y" and "0" 
to be either "Sides=1" or "Dcyl=N".

bit 4

This bit will be set to "1" to reflect an alien disk controller and set to "0" 
to indicate a standard disk controller. Most floppies use the disk 
controller in their own interface (standard). If the drive is hard, this bit 
will be "1". The message displayed will be "Alien DC" or "STD DC" 
respectively.

bits 3 through 0

If the drive is floppy, this nibble (half a byte) contains the physical drive 
address by direct binary conversion (i.e. 0001=1, 0010=2, 0100=4, 
1000=8). The system will only support one bit set at a time. A "Phys 
#n" will be displayed in the translation column where n is the physical 
drive number (1, 2, 4, or 8). If the drive is hard, this nibble represents 
the starting head number offset from one. (A starting head of 3 would 
be stored as 0010.) Although this is a four bit field, only the 3 least 
significant bits are used. A "Start Head=n" where n is the starting head 
number, will be displayed in the translation column.


Byte 05

This byte contains the current cylinder position of the floppy drive. Its normal 
purpose is to store the track register of the FDC. A "Current Cylinder=n" where 
n is the last accessed cylinder, will be shown for this byte. In case of a hard drive, 
this byte may show a drive select code and a "Drive Select Code=n" will be 
displayed, where n is the drive select code.

Byte 06

This byte contains the highest numbered cylinder on the drive. Since cylinders are 
numbered from zero, this byte will represent the total number of cylinders minus 
one. Therefore, a 35-track would be X'22', 40-track X'27', and 80-track as X'4F'. 
If the drive is hard and the double bit (Byte 04 bit 5) is set, this byte would 
contain half of the total cylinder count. The display will translate "Cylinder 
Count=n" where n is the true calculated cylinder count regardless of floppy, hard 
or double conditions set.

Byte 07

This byte contains certain allocation specifications set into two fields.

bits 7 through 5

This 3 bit field represents the number of heads on a hard drive. The 
eight possible heads are numbered 0 to 7 in binary (000-111). To get the 
number of heads, add one to the binary number (e.g. 011=3+1=4 
heads). The display will show "Heads=n" where n is the true number of 
heads, only if this is a hard drive. Otherwise, no display will occur for 
this field.

bits 4 through 0

This 5 bit field contains the number of sectors per track. Since sectors 
are numbered from zero, add one to find the actual amount of sectors 
per track. If there were 10 sectors per track the field would be X'09'. If 
the drive is two-sided (Byte 04 bit 5) the sectors per cylinder would be 
twice this number. The display will show "Sectors/Track=n". where n is 
the true number of sectors per track on the drive. The number of sectors 
per cylinder is not shown. 

Byte 08

This byte is broken into two fields which contain additional allocation 
parameters.

bits 7 through 5

This field contains the number of granules per track (a granule is the 
minimum number of sectors used for creating or extending a file). 
Again, add one to compute the actual quantity. A maximum of 8 
granules per track is allowed. If two-sided operation is indicated (Byte 4 
bit 5), the granules per cylinder will be twice this number. On a hard 
drive, this is the total granules per cylinder. The display will show the 
actual quantity in the expression "Gran/Track=n".

bits 4 through 0

This field designates the number of sectors per granule that was used in 
theft formatting operation. This field must be offset by adding one to the 
stored value. The display will show the calculated result as 
"Sectors/Gran=n" where n is the number of sectors per granule.

Note: The following formula must be met or the system will be susceptible to 
crashing:

Sectors per Granule X Granules per Cylinder = Sectors X (Tracks X Sides)

The DCT values contained in Byte 07 and 08 should conform to the standards 
used by LS-DOS, as illustrated in the following table. Note also that the values 
listed are for TRACKS not CYLINDERS. For double sided drives, the track 
values must be doubled. 

 Drive	Sectors	Sectors	Granules
 Type:	Track	Granule	Track

  5" SDEN	10	5	2
  5" DDEN	18	6	3
  8" SDEN	16	8	2
  8" DDEN	30	10	3
 *5" Rigid	32	16	2
 *8" Rigid	32	32	1

* May vary depending on hard drive type.

Byte 09

This byte contains the directory cylinder number. For any directory access, the 
system will first attempt to use this value prior to examining the BOOT sector 
directory storage byte in case the READ was unsuccessful. The display will 
translate this as "Directory Cylinder=n" where n is the number of the directory 
cylinder.

Modifying the DCT information

To modify the DCT associated with a given drive, answer the modification 
prompt with "Y". A series of questions will appear on the screen. By answering 
these questions, you will be allowed to directly modify the DCT information. The 
prompts that will appear will vary, depending on the drive types.

For all drive types, the following prompts will appear in the order listed:

Enable or Disable drive <E/D>
Driver Address (in Hex) ?
Software Write Protect <Y/N> ?
Single or Double Density <S,D> ?
Drive Type <0 = 5", 1 = 8"> ?
Floppy or Hard drive <F,H> ?

For any DCT modification prompt, if the information pertaining to the question 
does not need to be modified, press <ENTER>, and the particular piece of DCT 
information will be untouched. Otherwise, answer the prompt with the changes 



to be made. If an invalid response is entered for a DCT modification prompt, an 
error message will appear on the screen and the prompt will be repeated. If 
<BREAK> is pressed in response to any modification prompt, the DCT utility 
will be aborted. Control will resume at the LS-DOS Ready prompt, and the DCT 
information for the drive in question will remain unchanged (no changes made to 
the DCT information prior to pressing <BREAK> will be reflected).

If the "Floppy or Hard drive" prompt is answered with "F" (or the drive was 
seen by the system initially to be a floppy drive and <ENTER> was pressed), the 
following set of prompts will appear.

Delay time <0 = 1 sec, 1 = .5 sec> ?
Stepping Rate <0=6ms,1=12ms,2=20ms,3=30ms>?
FDC capable of Double Density <Y/N> ?
One or Two sided operation <1,2> ?
Standard Floppy Disk Controller <Y,N> ?
Physical Drive Address <1,2,4, or 8> ?
Maximum Cylinder count ?
Sectors per Granule ?
Granules per Track ?
Directory Cylinder ?

If the "Single or Double Density" prompt is answered with "D" (or the drive is 
currently configured for double density), the "FDC capable of Double Density" 
prompt will not appear.

If the "Floppy or Hard Drive" prompt is answered "H", the following prompts 
will appear in place of the prompts listed above.

Removable or fixed <R,F> ?
FDC capable of Double Density <Y/N> ?
Standard Floppy Disk Controller <Y,N> ?
Starting Head Number <1-8> ?
Drive Select Code ?
Maximum Cylinder count ?
Set Double Bit <Y,N> ?
Number of Heads <1-8> ?
Sectors per Granule ?
Granules per Track ?
Directory Cylinder ?


After all of the modification prompts have been answered, the following prompt 
will appear:

Install Modifications (Y/N) ?

To incorporate the changes made into the DCT, answer this prompt with "Y". 
This will cause the DCT to be modified, and the status display will reappear on 
the screen with these changes.

To not incorporate the changes made into the DCT, answer the above prompt 
with "N", and the DCT will remain the same as it was prior to being asked the 
first modification question. The DCT utility will stop and return to LS-DOS 
Ready. 

DIRCHECK

This program checks a disk directory for flaws and attempts to fix detected 
errors. The proper syntax is:

DIRCHECK drivespec (H,L,N,P,R)
H=	must be specified if the target drive 
is a hard drive with no cylinder 
locked out. If a number is specified 
also then that cylinder is assumed to 
be locked out.
L	must be specified if the target  drive 
is a Laredo Hard Drive.
N	non-stop screen display of 	error 
messages.
P	sends error messages to line printer.
R	must be specified if the target drive 
is a Radio Shack Hard Drive.
Abbr	":" in drivespec is optional

To verify the integrity of a diskette, at DOS Ready type:

DIRCHECK :d

The DIRCHECK :d (P) syntax will send any error messages to the printer 
device as well as the video display.

Hard drive directories differ from those found in floppy drives in that they have 
no lock out table for flawed cylinders detected during formatting. However, 
certain machines will have a cylinder(s) purposely locked out in order to reserve 
it for diagnostic purposes. It is for that reason that the following parameters are 
to be used with hard drives.

DIRCHECK :d (R) or DIRCHECK :d (L) are specified for a Radio Shack or 
Laredo hard drive. This ignores a GAT error of "Allocated but not used" (see 
errors below) for cylinder X'01' or X'77' respectively. These cylinders have been


deliberately locked out for future use but this establishes the cited error 
condition.

For hard drives with no locked out cylinders, specify the "H" parameter. If this 
parameter is modified with a number (H=n : where 1 <= n <= 202), then the 
cylinder specified by the number will be treated as a locked out cylinder. Note 
that this could be used in lieu of the "R" or "L" parms with the proper cylinders 
specified. An example of this invocation of DIRCHECK would be

DIRCHECK :2 (H=1)

If you do not enter a drivespec on the DIRCHECK command line, DIRCHECK 
will prompt for the logical drive number containing the diskette that needs to be 
checked. Enter a number 0 through 7. Pressing <BREAK> at this prompt will 
return to the DOS Ready prompt.

If no errors are detected, the message:

Directory Check Complete, 0 Errors

will appear and control returned to LDOS Ready. If any errors are detected a 
message with the appropriate information will appear. Error messages will be 
displayed as they are detected. If there are multiple problems within the directory, 
the messages will pause every 23 lines. To continue, press any key except 
<BREAK>.

To abort, press <BREAK>. If the "N" parameter was specified the video display 
will not pause. Note that if "P" is specified that "N" is assumed.

After all errors have been detected, the prompt:

Directory Check Complete, X Errors
Attempt to Fix Directory (Y/N)?

will appear, where X is the total number of errors detected. Answering with "Y" 
will cause the utility to try and repair the damage. Answering "N" will abort the 
utility and in either case control is resumed at DOS Ready. It may be 
advantageous to run FIXGAT first before repairing with DIRCHECK.

Certain errors cannot be corrected. Among these are: Directory Read Error (due 
to partial erasure or worn media), two or more files allocated to the same disk


space, GAT Read Error or other "hard" errors. The utility will abort to DOS 
Ready if any non-recoverable error occurs.

If the FIX prompt is reached, there is still no guarantee of total success. After a 
fix has taken place, run DIRCHECK again to make certain all errors have been 
repaired. It is not recommended to utilize a diskette with a flawed directory. If a 
partial reconstruct has occurred but some errors remain, recover files by copying 
to a known good diskette.

DIRCHECK error messages

NOTE: Throughout the list of error messages the phrase "Total Recovery is 
possible" should be taken with emphasis on the last word. If there is a media flaw 
or hardware malfunction, there is little that can be done by software to precipitate 
recovery. What is meant is that the chance of recovery is theoretically fairly 
good.

Unable to Log in Drive - No recovery is possible. Aborts utility.

Insufficient Memory to Check Directory - Most likely to occur on large volume 
drives that are quite full. No recovery is possible but there is not necessarily 
anything wrong. The utility had to abort.

The following are all Hash Index Table (HIT) errors.

Missing Hash Code at HIT X'nn' - A file has no entry in the Hash Index Table 
at hexadecimal table position X'nn'. Total Recovery is possible.

Unnecessary Hash code at HIT X'nn' - A HIT entry exists at position X'nn' 
with no file. Total Recovery is possible.

Incorrect Hash code at HIT X'nn' - A file has the wrong HIT entry at position 
X'nn'. Total Recovery is possible.

The following are all Directory Entry Code (DEC) errors.

Non-existent FXDE - > DEC X'nn' - A directory extension should exist at 
Directory Entry Code X'nn' but does not. No recovery is possible.

FXDE Chain Error - > Extent ddd DEC X'nn' - A directory extension exists at 
X'nn' that does not point back to the original file. (ddd is the decimal number of 
the extent.) Recovery is sometimes possible.

Illegal DIR/SYS Entry - the entry in the directory of itself is incorrect. Total 
Recovery is possible.

The following are all Granule Allocation Table (GAT) errors.

GAT Re-allocation - > Cylinder ddd Gran d - Two or more files think they own 
the same disk space. Automatic recovery is not possible. As a last resort, kill the 
offender and run DIRCHECK again. Chances of recovery by this method are 
rather slim.

Granule(s) allocated In locked out cylinder ddd - During FORMAT unreadable 
cylinders are locked out to prevent their use. However, certain files have been 
allocated to these unreadable cylinders. Nothing is done by the DIRCHECK 
utility to correct the problem but it may be possible to COPY the file to another 
diskette if in fact the EOF has not progressed into the locked out cylinders.

Granule d of Cylinder ddd, allocated but not used - This means that the granule 
has been indicated to be in use but in fact, is not. Total Recovery is possible.

Granule d of Cylinder ddd, used but not allocated - This means that a file is 
actually occupying what is supposed to be available space. Total Recovery is 
possible.

The following are disk Input or Output errors (I/O).

Directory Sector X'nn' is unreadable - No recovery is possible of any files in 
that sector.

Directory Write Error - Sector X'nn' - The attempt to write corrected 
information was not able to be verified. A "Retry Write (Y/N)" prompt will 
accompany this error. Answer "Y" to try again. If the error is constant, enter "N" 
to proceed. Recovery is not possible. 

FIXGAT

FIXGAT drivespec

There are no parameters

abbr 	":" in drivespec is optional

If during any disk access, an error is received such as "Illegal Drive Number" and 
there is a diskette in the drive, the problem could be caused by the Granule 
Allocation Table (GAT) sector of the directory containing incorrect information. 
Other GAT related problems could include improper disk name or master 
password, or an incorrect date. The FIXGAT utility might help in any of these 
circumstances.

Hardware errors such as disk I/O errors, parity read errors, or directory read 
errors might be due to worn media, improper formatting, or hardware faults. 
These latter types of errors cannot be repaired by software.

The purpose and use of the GAT sector are explained in the DOS technical 
manual. FIXGAT simply overwrites information contained in relative bytes 
GAT+X'CB' through GAT + X'FF' of the first directory sector. After a series of 
prompts, the utility will write the block of information to the section described. It 
makes no determination regarding the validity of the existing information simply 
because there can be no guarantee that the stored data is correct.

After a FIXGAT has been performed, the GAT has only those characteristics 
which were given as answers to the prompts. If the information supplied was not 
technically correct then unpredictable results will occur.

If the media or disk drive are not functioning properly then this utility might not 
function correctly. Pressing <BREAK> for any prompt will return to DOS 
Ready. The following discussion will describe what happens in detail.

Diskette Name (Default = XXXXXXXX) ?

Whatever is contained in X'D0 through X'D7' is displayed as Default. To change 
the diskette name enter a new name. To leave it as is, press <ENTER>.

Date (Default = XX/XX/XX) ?

The diskette date is used as the default unless it is unreadable, in which case the 
current system date is displayed as the default date. Enter a date in the 
MM/DD/YY format to change it or press <ENTER>. Bytes X'D8' through X'DF' 
will be overwritten.

Cylinder Count (Default = xxx) ?

The default is taken from the target diskette, which might be totally incorrect if 
the GAT is defective. Be careful! Enter the proper cylinder count or press 
<ENTER>. Entering the incorrect count means that some files might never be 
seen again! Byte X'CC' is overwritten with the proper computed value.

Number of Sides <1,2> (Default = X) ?

All defaults from now on are read from byte X'CD'. Type answer or press 
<ENTER>. Bit five of byte X'CD' is set or reset based on this response.

Density <S,D> (Default = X) ?

Bit six of byte X'CD' is set based upon this response.

Granules per Cylinder (Default = X) ?

Bits two through zero of byte X'CD' are set based upon this response.

The chart below represents the DOS default values for the media type and size. 
In order to determine granules per cylinder, multiply granules per track times the 
number of surfaces. 

 Drive	Secs	Secs	Grans
 Type	Track	Gran	Track

 5" Single Density	 10	  5	  2
 5" Double Density	 18	  6	  3
 8" Single Density	 16	  8	  2
 8" Double Density	 30	 10	  3

*5" Hard Drive	 32	 16	  2
*8" Hard Drive	 32	 32	  1

* may vary depending on manufacturer

No answers are required but the following changes happen automatically. Byte 
X'CB' is set to X'51'. The master password of the diskette becomes 
"PASSWORD" (bytes X'CE'-X'CF'). Any AUTO sequence is removed (bytes 
X'E0' through X'FF').

The prompt : "Install Modifications (Y/N)" will now occur. Answer "Y" to 
implement the changes or answer "N" to abort the write.

It must be realized that FIXGAT only changes certain "signs" in the GAT. 
Changing the "sign" does not change the reality. It is not correct to assume that 
this utility will change a single to a double density diskette or the alter the number 
of cylinders etc.

After FIXGAT has been used, the DIRCHECK utility should be used. After all 
possible repairs are completed, make a BACKUP by class ($:s TO A) 
immediately. Note that a mirror image backup would merely reproduce the 
defective directory to the destination diskette. The repaired disk is, in all 
probability, incapable of properly allocating files especially if any locked out 
tracks were present on the disk.





IOMON

IOMON is a disk drive "filter" which, when installed, will monitor disk 
input/output for errors and allow you to take corrective action when such occur. 
The following table describes the syntax of IOMON command invocations:

IOMON (parm, parm)

ON	Installs the I/O monitor in high 
memory and enables its operation.
OFF	Disables the I/O monitor's operation 
and removes it from high memory if 
possible.
ENable	Enables the I/O monitor if it has 
been previously disabled.
DISable	Disables the I/O monitor's operation 
without removing it from high 
memory.
Table	Displays the currently enabled disk 
drivers in a tabular format.
Abbr:	ON=YES or Y. OFF=NO or N, 
ENable=EN or E, DISable=DIS or 
D, TABLE=TAB or T.
Defaults:	ON and TABLE.

The I/O monitor is installed with the simple command:

IOMON (ON)

IOMON will "filter" all currently enabled disk drives with its own error trapping 
routine. Any disabled disk drives will remain unfiltered so that they may be 
enabled at a later time, if needed, without the interference of the monitor. The 
monitor can be temporarily disabled, without removing it from high memory, by 
the command:

IOMON (DISABLE)


At this time, any new drivers or drive "filters" may be installed into the system. 
To re-enable the monitor, execute the command:

IOMON (ENABLE)

The command:

IOMON (OFF)

will permanently remove the monitor from the system; its high memory allocation 
will be released if possible.

Remember, at most one of the four major monitor parameters (ON, OFF, 
ENABLE, or DISABLE) may be specified in the same command line; any 
combination of two or more is an error and will cause the monitor installation 
program to abort. The TABLE parameter may be entered along with any one of 
the other four.

The TABLE parameter may be used to obtain a display of all currently active 
disk I/O drivers without affecting the current status of the monitor. Any use of 
the parameters OFF, ON, ENABLE, and DISABLE will also display the driver 
table. A typical table follows:

:0 => IOMON, X'F3B9'   => $ADH, X'F57E'
:1 => IOMON, X'F3B9'   => $FD, X'10A1'
:2 => IOMON, X'F3B9'   => $FD, X'10A1'
:3 => IOMON, X'F3B9'   => $FD, X'10A1'
:4 => IOMON, X'F3B9'   => $FD, X'10A1'
:5 => Inactive
;6 => Inactive
:7 => Inactive

 This table, for each drive, indicates whether the monitor is active and where in 
high memory the monitor resides, plus the next driver in the chain and where it 
resides. The system floppy disk driver is indicated by the module name "$FD". 
Any inactive drive is shown as such.

When a trapped disk I/O error occurs, and the monitor is active, the following 
will be displayed:




Disk I/O error X'nn': <message>
Function X'nn', Drive n, Cylinder X'nn',
Sector X'nn', Buffer X'nnnn'
<R>etry, <C>ontinue, <I>gnore, <A>bort?

As shown, the error code, driver function, drive number, cylinder number, sector 
number, and buffer address will be displayed, along with a short explanatory 
message. A list of the driver function codes is available for reference in one of 
two publications: "The Programmers Guide to LDOS/TRSDOS Version 6" from 
MISOSYS, page 3-46; or the "TRS-80 Model 4 Technical Reference Manual", 
from Radio Shack, page 195. The following errors are trapped:

Code	Short Message	Explanation

X'01'	Read Hdr - CRC	Parity error during header read
X'02'	Read - Seek	Seek error during read
X'03'	Read - LD	Lost data during read
X'04'	Read - CRC	Parity error during read
X'05'	Read - RNF	Data record not found during read
X'09'	Write Hdr - CRC	Parity error during header write
X'0A'	Write - Seek	Seek error during write
X'0B'	Write - LD	Lost data during write
X'0C'	Write - CRC	Parity error during write
X'0D'	Write - RNF	Data record not found during write
X'0E'	Write - Flt	Write fault on disk drive
X'0F'	Write - WP	Write protected disk

At this point you must choose one of the four options listed in the third line of 
the error display. Simply type the first letter of the desired action to be taken, 
either "R", "C", "I", or "A". Lowercase is accepted.

The <R>etry option will issue the I/O command to the disk driver again in the 
hope that a retry will be successful. Note that the driver has already attempted 
the I/O operation several times without success (the exact number of automatic 
retries is defined by the system variable RFLAG$). Manual retries with the <R> 
option are most effective for recovery from parity, lost data, and record not 
found errors, especially when you are executing a BACKUP or COPY operation. 

The <C>ontinue option will exit the I/O monitor, passing the error code 
unchanged back to the calling program. Many system programs, such as the 
FORMAT utility, normally expect to see certain kinds of disk I/O errors, and 
contain routines which will handle the errors automatically. Use the <C> option 
in these cases.

The <I>gnore option will exit the I/O monitor and return to the calling program 
as if no error ever occurred. Note that use of this option will prevent the calling 
program from detecting the error, and that the I/O buffer will probably contain 
invalid data. The <I> option should only be used when repeated <R>etries have 
been unsuccessful, and you wish the executing program to continue operation 
without aborting (for instance, you may wish to continue a BACKUP by class 
when an error occurs while copying one of the files being backed up).

Finally, the <A>bort option will immediately return to DOS Ready through the 
system abort routine. This will cancel any executing JCL.


MAPPER

The operating system's directory command (DIR) will let you know what files 
you have on a disk, but MAPPER will show you where the files are positioned on 
that disk. It is invoked via the syntax:

MAPPER :d (Print)

:d 	Specifies which drive to MAP.

Print 	Sends output to the printer device.

Abbr:	P=PRINT

MAPPER provides a diskette map by granule by file. You can use it just to get a 
look at what files occupy each granule of disk space. This information is great for 
other uses [such as reconstruction of damaged cylinders].

If you do not enter a drive number on the command line, MAPPER will prompt 
you to enter the drive number via the prompt:

Drive ?

While the map is being displayed on the video screen, the following keys will 
allow you to scroll through the map:

Key Code 	Key Function

<UP ARROW>	display previous screen page
<DOWN ARROW>	display next screen page
<X> or <BREAK>	Exit to DOS

The PRINT parameter option will cause the disk map to be sent to the printer 
instead of the video display,

MAPPER produces a screen or printer listing similar to the following illustration 
[some lines have been deleted to abbreviate the listing]:




Diskname : TESTDISK	Free Space :    108K
Sides : 1   Density : Double	Cylinders :   40

 0  BOOT/SYS	M80/CMD	M80/CMD
 1  M80/CMD	M80/CMD	M80/CMD
 2  M80/CMD	M80/CMD	TEST/CMD
 3  TEST/CMD	TEST/CMD	TEST/CMD
19  ** Empty **	** Empty **	** Empty **
20  DIR/SYS	DIR/SYS	DIR/SYS
24  ** Empty **	** Empty **	** Empty **
25  ** Locked **	** Locked **	** Locked **
26  ** Empty **	** Empty **	** Empty **
27  M80PACK/CMD	M80PACK/CMD	M80PACK/CMD
28  M80PACK/CMD	M80PACK/CMD	M80PACK/CMD
37  ** Empty **	** Empty **	** Empty
38  M80/CMD	M80/CMD	M80/CMD


RAMTEST

Tests the standard 64K of memory from X'0000' to X'FFFF' for a Model 4, 4P, 
or 4D TRS-80, and any extra memory banks available to the DOS. The syntax is:

RAMTEST (Alpha,Fast,Quiet,Repeat,Xlr8)
RAMTESTL (Quiet,Fast,Repeat)

Alpha	Used to force Alpha Technology 
bank switching for expanded 
memory.

Fast	Used to specify a quick memory 
test without adjacent cell 
interference testing.

Quiet	Disables the status beeping.

Repeat	Used to establish a repetition of the 
testing through all memory banks. 
The default is one iteration. A value 
of zero implies 65536 iterations.

Xlr8	Used to force XLR8er bank 
switching for expanded memory.

Abbr:	Q=Quiet, X=XLR8, A=Alpha, 
F=Fast

The RAMTEST utility performs a read/write/verify test of high memory from 
8000H-FFFFH. It consists of multiple phases of four tests each, designated 1, 2, 
3, and 4. Each phase tests one of the switchable memory banks. Each test 
consists of five iterations designated as A, B, C, D, and E. Tests 1A, 2A, 3A, and 
4A each propagate a bit pattern through each byte of memory. The bit patterns 
are respectively all 1's, alternating 1's and 0's, alternating 0's and 1's, and all 0's. 
Tests B through E examine adjacent cell interference by comparing the byte 
above and below the tested byte address for pattern changes when the address 
under test is changed to one of the four bit patterns previously noted.

During all testing, a status message of the following form will be displayed:


Bank xx Test yz

The "xx" field indicates the current memory bank under test. This value can vary 
from 00 through 30 depending on the installation of an expanded memory board. 
The "y" field designates the test number while the "z" field designates the 
particular pattern being tested (A-E). An alive bug is displayed in the upper right 
corner of the screen to indicate activity of the utility. As each portion of the test 
is invoked, a beep will sound from the internal speaker of your computer. This 
may be disabled via the QUIET parameter.

If an error is detected, the screen will show:

BAD RAM at location X'nnnn':
Was xxH, should be yyH

where nnnn is the hexadecimal address of the failure, xxH is the value detected at 
that address in memory, and yyH is the correct value. At this time the test will 
pause awaiting an <ENTER>. Make note of the address and repeat the test. If 
the test fails at the same location then there is more than likely a problem with 
your RAM. If the failure is during an "A" test, the difference in bit patterns 
between the bad value and the correct value may provide a clue as to the exact 
RAM chip which is bad. If the test fails at random locations, check power source, 
clean connections, and repeat the test. Note that if there is a problem in low 
memory (0000-7FFFH), it is possible that the RAMTEST program itself may be 
corrupted. Try running RAMTESTL to check low memory. You may abort 
RAMTEST during its testing by depressing <BREAK>.

RAMTEST supports two expanded memory boards: the XLR8er board, from 
MISOSYS, and the Alpha Technology board. RAMTEST first performs an 
analysis of what memory is installed using the @BANK facility of the DOS, If it 
finds less than 11 banks of memory, it assumes no expanded memory board is 
installed. If it finds exactly 11, it will assume an XLR8er board; more than 11 will 
imply an Alpha Tech board.

During testing, HIGH$ is respected and anything in high memory will be saved in 
low memory, if sufficient free space is available. After all tests have been 
complete, RAMTEST will restore HIGH memory and post a completion 
message. If any expanded memory was in use, RAMTEST will re-boot your 
computer as there is no provision to preserve the contents of expanded memory. 

RAMTESTL performs similar tests on the memory from X'0000' to X'7FFF'. The 
low memory from X'0000' through X'25FF' will be saved in high memory during 
the test and restored when the test has been completed.




UNREMOVE

This is used to re-instate a file which was previously deleted by using the 
REMOVE or PURGE command. The syntax is:

UNREMOVE [filename/ext][:d]

no parameters are allowed

abbr:	NONE

Since REMOVE and PURGE only reset bits in the directory entries, reset the 
Hash Index Table (HIT) and Granule Allocation Table (GAT), and don't erase a 
file, it is possible to re-allocate file space provided the file hasn't been overwritten 
by another entry and all space that it previously occupied has not been 
re-allocated. Therefore, UNREMOVE should be used as soon as possible after 
the deletion has occurred.

To re-activate a specific deleted file, type the following command at the DOS 
Ready prompt:

UNREMOVE filename/ext:d

The filespec must be identical to the deleted file including any extensions or 
drivespecs. If no drivespec is specified the command will default to drive 0 but 
will not search any other drives. If a password existed on the file, it will also be 
re-activated, although a password is not required to UNREMOVE it.

It is possible to find multiple deleted files identically named residing on a 
particular disk drive. When this occurs, UNREMOVE will display the list of files 
with the modification date and time (where applicable) and the size of the deleted 
file. You can then select the particular one you wish to reinstate.

If you are unsure of the exact name of a file which was deleted, enter the 
command as:

UNREMOVE :d



The program will then display a list of the first 22 deleted files on drive :d which 
can be restored. Select the desired one.

An example of the UNREMOVE command for restoring a single file is:

UNREMOVE ACCOUNT/DAT:1

The previously deleted file called ACCOUNT/DAT on drive 1 will now be 
re-activated if possible.

If you are not sure of the name of a deleted file that you wish to recover, you can 
invoke the UNREMOVE command specifying only the drive specification of the 
disk where the file existed. UNREMOVE will then examine that disk and display 
a list of the first twenty deleted files it finds which can possibly be re-instated. 
Choose the file from that list.

Some of the errors that could occur are:

Illegal Filename: This means that an improper filename was used. Check 
the spelling or syntax and try again.

Directory Read Error: The diskette directory is no longer readable in part 
or whole. Try again and if that produces the same error, switch drives and try 
again. If the same error occurs on more than one drive, the diskette is most likely 
the cause and no recovery of the file is possible.

Directory Write Error: Verification of the attempted write was not 
obtained. Attempt to recover as if it were a read error.

File Already Alive: An attempt was made to UNREMOVE an active file. 
If the deleted file has the same filename as a current file, RENAME the current 
file and attempt to UNREMOVE again.

No File By That Name: No such filename is in the specified drive directory. 
Either the wrong disk was specified or another file has already overwritten the 
directory entry. In the latter case, no re-activation is possible.

Cannot UNREMOVE File: The name of the deleted file was found but the 
diskette space allocated to it has already been used by another file. No 
re-activation is possible.

ABORT	Terminate an operation, usually with the <BREAK> 
key.
ADDRESS	The location in memory of a particular byte, word, or 
string.
ATTRIBUTE	A facet of a file indicative of such things as whether 
the file is invisible to the DIRectory command, 
whether it's a SYSTEM file, whether it's a Partitioned 
Data Set, etc.
BACKUP	An operating system command used to make a 
duplicate copy of a diskette or group of files.
BANK	A term which refers to a portion of the extended 
memory of your computer. A "bank" represents 
32,768 (32K) characters of storage.
BINARY	A number system consisting entirely of 0's and 1's; an 
environment which can exist in either of two states 
(usually ON or OFF).
BIT	The smallest unit contained in a byte which is 
composed of eight bits.
BOOT	The action of starting up your computer by turning on 
its power, inserting a system disk into the floppy drive 
numbered 0, closing the drive door, and possibly 
depressing the RESET switch.
BREAK	A key labeled as such on your keyboard; this key is 
used by PRO-WAM applications to either abort a 
command operation or exit from the application.
BUFFER	A specific memory space reserved usually for 
intermediate storage of data being written to or read 
from a disk sector.


BUG	A malfunction of a computer program caused by an 
error in the program code. We hope there are none of 
these critters in this package.
BYTE	The smallest storage unit in your computer. A byte 
can contain a number value of from zero through 255; 
a character is usually represented by a byte value. A 
byte contains eight bits.
CHARACTER	A term applied to the symbols which make up the 
language we use to communicate with our computer 
and with which it communicates to us. These 
symbols may be alphanumerics, special characters 
(!@#$%^&*()-=+...), or non-printing control 
characters.
CIM	A file extension of files usually containing a Core 
Image Module. Such files are usually executable 
machine code in memory image form.
CMD	A file extension of executable command  files. These 
are programs which can be run by typing the filename.
COMMAND	The general term applied to the many functions 
available in each application. The list of commands 
supported by a given application is usually displayed 
as a menu in the bottom portion of the application 
window.
CONFIGURATION	The current operating environment of your computer 
indicating such things as resident and active filters, 
condition of alterable DOS flags, device assignments, 
interrupt handlers, etc.
CR	An abbreviation for the term "carriage return". This is 
an ASCII character value 13 decimal; it is entered on 
your keyboard via the key labeled, <ENTER>.

CRC	An abbreviation for Cyclical Redundancy Check; it is 
a method of counteracting errors in data transmission 
by the use of redundant coding.
CTRL	This is the mnemonic on the keyboard key used to 
enter control characters; it is used in combination with 
another key.
CURSOR	Anytime your computer is waiting for you to enter a 
keystroke, its position on the video screen is usually 
marked with a special character. This character may 
be an underline, a block, or a right angle bracket. The 
character is termed the "cursor". The position of the 
cursor may be controllable via the ARROW keys.
CYLINDER	A term to designate all like numbered tracks on all 
surfaces of a multi-surface disk drive. A two-headed 
drive would have two surfaces and two tracks per 
cylinder. On a one-headed disk drive, a track and a 
cylinder are synonymous.
DCB	An acronym for Device Control Block; it is a system 
memory storage space associated with character 
devices (video, keyboard, printer, serial port, etc.).
DCT	An acronym for Drive Code Table; it contains the 
information which describes your disk drives to the 
DOS.
DDEN	An acronym for double density formatting associated 
with floppy diskettes.
DEFAULT	A particular operation or configuration which is 
installed or designated without any specific action by 
you.
DELETE	The action of removing, killing, or erasing a file, a 
record, a field, or any similar entity.


DENSITY	A term applicable to the method of recording data 
onto a disk drive media. For floppy diskettes, the 
methods are usually single or double density.
DEVICE	A term applied to a peripheral component of your 
computer usually associated with character 
input/output (e.g. keyboard device, video device, 
printer device, etc.).
DIRECTORY	A special file on a floppy or hard disk which contains 
the location and other pertinent details of all files 
stored on that disk.
DISK	The abbreviated term for "disk drive" which is the 
hardware apparatus used to either store your files, in 
the case of a hard or rigid disk drive, or is used to 
read your floppy diskettes, in the case of a floppy disk 
drive.
DISKETTE	A shorthand way of saying "floppy diskette", the 
flexible recording medium used by your computer's 
disk drives to store files.
DISPLAY	A shorthand way of referring to the video display 
screen of your computer.
DOS	An acronym for Disk Operating System. This is the 
system supplied with your computer which manages 
the files stored on diskettes and provides an operating 
environment for programs.
DRIVE	An abbreviation for "disk drive".
DRIVER	A special computer program connecting a hardware 
device to the DOS (e.g. COM/DVR).
DRIVESPEC	The disk drive identifier field of the file specification. 
This is indicated by a colon followed by a number in 
the range 0-7.


EOF	An abbreviation for "end of file". It is a position in a 
file indicating where the last byte is stored.
FDC	An acronym for Floppy Disk Controller, it is the 
hardware unit which connects floppy disk drives to 
the computer and controls their operation.
FIELD	One particular item in a group of data making up a 
record.
FILE	A collection of data records stored on disk.
FILENAME	The name field of a file specification.
FILESPEC	An abbreviation for file specification: the entire 
character string which identifies a particular file. It is 
composed of a file name, a file extension, a password, 
and a drivespec.
FILTER	A special program inserted logically into a device 
stream for the purpose of altering the behavior of 
input/output.
FLAG	A data field used to store a particular environment 
state. Flags are usually binary (e.g. ON/OFF, 
YES/NO, TRUE/FALSE).
FLOPPY	An abbreviation for "floppy diskette"; it is the flexible 
recording medium used to store files.
FLT	A file extension usually reserved for filter modules.
FORMAT	An operating system utility used to prepare a blank 
diskette before files can be stored on it, or other 
diskettes backed up to it.
GAT	An acronym for Granule Allocation Table; it contains 
information for a disk designating what granules are 
being used.
GRAN	A shortened form of granule.
GRANULE	A unit of space on a diskette; it is composed of a fixed 
number of sectors. Double density floppy diskettes 
have 6 sectors per granule under LS-DOS 6.3.
HIT	An acronym for Hash Index Table. It is a portion of 
the directory stored on a disk which contains the 
one-byte directory entry codes for each active file.
INVISIBLE	An attribute which can be placed on a file by the 
ATTRIB DOS library command which inhibits the 
file's information from being presented by the DIR 
DOS library command.
JCL	An acronym for Job Control Language. This is a DOS 
facility to execute a predetermined set of command 
lines.
LOGICAL	The term applied to an event which is simulated rather 
than physical. A character value of 127 decimal may 
be interpreted as a carriage return for export 
purposes; since 127 is not physically a 13 decimal, it is 
termed, in this case, a logical carriage return.
LRL	An acronym for Logical Record Length; it represents 
the length of a record in bytes. Since the record length 
is not a physical phenomena, it is termed logical.
LSB	An acronym for "low-order significant byte"; this is 
the lowest storage portion of a three-byte value.
LS-DOS	A nomenclature of the 6.3 release of the operating 
system used on the Model 4 computer.
MAINTENANCE	Repetitive actions performed at periodic intervals to 
keep something working, or to repair something that 
is broken.


MEDIA	A term indicating the magnetic or optical surface of 
material used to store computer files.
MEMORY	The storage area for characters and programs internal 
to your machine (in contrast to disk storage).
MENU	The list of commands supported by an application 
which appear at the bottom of the application's 
window.
MESSAGE	A phrase or sentence used to inform you of some 
event. It may apprise you of an error or prompt you 
for a particular response.
MSB	An acronym for "mid-order significant byte"; this is 
the middle storage portion of a three-byte value.
PARAMETER	An option, usually entered on the command line, 
which alters the behavior of a program.
PARITY	A term used to denote the quantity of "1" bits in a 
byte. Odd parity implies 1, 3, 5, or 7 "1" bits; even 
parity implies 2, 4, 6, or 8 "1" bits. Parity is used in a 
simplistic scheme to provide integrity of data during 
transmission by incorporating an additional bit to 
always make either even or odd parity.
PARTITION	Any one piece of a unit, commonly a hard disk drive, 
which has been divided up into more than one logical 
unit.
PASSWORD	A string of characters required as part of a file 
specification or entire disk before a given level of 
access is permitted.
PROGRAM	A predetermined sequence of machine instructions 
which together support some reasonably complex 
operations.


PROMPT	A displayed message which expects a usable response.
PROTECTION	Measures applied to a file for security purposes. It 
may relate to access level restrictions or password 
control before granting access. Protection is applied 
via the DOS ATTRIB command.
PRO-WAM	The trademarked name applied to the window 
controller and application manager published by 
MISOSYS.
RAM	A type of memory storage which provides both read 
and write capabilities.
README/TXT	A plain text file included on your program diskette 
which contains last minute information not printed in 
this manual.
REGISTER	A very fast memory storage location located within 
the Central Processing Unit (CPU) of your computer.
REMOVE	The act of erasing, killing, or deleting a file, a module, 
a record, or other similar entity.
SCREEN	Short for the video display screen.
SDEN	An acronym for single density; one of the recording 
methods used on floppy diskettes.
SECTOR	A physical storage unit of a floppy diskette or hard 
disk drive.
SVC	An acronym for "SuperVisor Call"; a facility of the 
DOS used to communicate with it at the program 
level in contrast to the command level.
SYNTAX	A particular requirement for the entering of 
information. 	-38


SYS	A particular file extension indicating a "system" file; 
e.g. SYS0/SYS.
SYSTEM	The nomenclature of a diskette which is used to either 
BOOT your computer or which is used in drive :0.
TRACK	A circular virtual groove of a disk surface; it contains 
the sectors read during one rotation of the disk.
USER	Someone who operates computer programs but does 
no or little computer programming.
UTILITY	A computer program designed to do some 
maintenance operation.
VIDEO	Short for the video display screen.
WILDCARD	A string of characters which don't completely 
designate a file specification but which contain certain 
"global" characters such as "*", "$", or "?" used to 
match any character thereby specifying a group of 
"matching" file specifications.
WORD	In the mathematical sense, the term applied to a 16-bit 
value which will occupy a two-byte storage region. 
Also is the name of the word processor used to 
prepare this documentation.
	Golden Oldies: Maintenance Package
	- 34 -

	Golden Oldies: Maintenance Package
	- iii -
	Golden Oldies: Maintenance Package
	DCT  Drive Code Table Creator
	- 39 -
	DIRCHECK  Directory Integrity Checker
	FIXGAT - Fix Granule Allocation Table
	IOMON - Disk Drive I/O Monitor
	MAPPER  Directory Mapper
	RAMTEST - RAM Tester
	UNREMOVE - Deleted File Restorer
	Glossary of Terms
